/* Register offsets for HPPA running GNU/Linux.

   Copyright (C) 2007-2025 Free Software Foundation, Inc.

   This file is part of GDB.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

#ifndef GDB_HPPA_LINUX_OFFSETS_H
#define GDB_HPPA_LINUX_OFFSETS_H

#define PT_PSW offsetof(struct pt_regs, gr[ 0])
#define PT_GR1 offsetof(struct pt_regs, gr[ 1])
#define PT_GR2 offsetof(struct pt_regs, gr[ 2])
#define PT_GR3 offsetof(struct pt_regs, gr[ 3])
#define PT_GR4 offsetof(struct pt_regs, gr[ 4])
#define PT_GR5 offsetof(struct pt_regs, gr[ 5])
#define PT_GR6 offsetof(struct pt_regs, gr[ 6])
#define PT_GR7 offsetof(struct pt_regs, gr[ 7])
#define PT_GR8 offsetof(struct pt_regs, gr[ 8])
#define PT_GR9 offsetof(struct pt_regs, gr[ 9])
#define PT_GR10 offsetof(struct pt_regs, gr[10])
#define PT_GR11 offsetof(struct pt_regs, gr[11])
#define PT_GR12 offsetof(struct pt_regs, gr[12])
#define PT_GR13 offsetof(struct pt_regs, gr[13])
#define PT_GR14 offsetof(struct pt_regs, gr[14])
#define PT_GR15 offsetof(struct pt_regs, gr[15])
#define PT_GR16 offsetof(struct pt_regs, gr[16])
#define PT_GR17 offsetof(struct pt_regs, gr[17])
#define PT_GR18 offsetof(struct pt_regs, gr[18])
#define PT_GR19 offsetof(struct pt_regs, gr[19])
#define PT_GR20 offsetof(struct pt_regs, gr[20])
#define PT_GR21 offsetof(struct pt_regs, gr[21])
#define PT_GR22 offsetof(struct pt_regs, gr[22])
#define PT_GR23 offsetof(struct pt_regs, gr[23])
#define PT_GR24 offsetof(struct pt_regs, gr[24])
#define PT_GR25 offsetof(struct pt_regs, gr[25])
#define PT_GR26 offsetof(struct pt_regs, gr[26])
#define PT_GR27 offsetof(struct pt_regs, gr[27])
#define PT_GR28 offsetof(struct pt_regs, gr[28])
#define PT_GR29 offsetof(struct pt_regs, gr[29])
#define PT_GR30 offsetof(struct pt_regs, gr[30])
#define PT_GR31 offsetof(struct pt_regs, gr[31])
#define PT_FR0 offsetof(struct pt_regs, fr[ 0])
#define PT_FR1 offsetof(struct pt_regs, fr[ 1])
#define PT_FR2 offsetof(struct pt_regs, fr[ 2])
#define PT_FR3 offsetof(struct pt_regs, fr[ 3])
#define PT_FR4 offsetof(struct pt_regs, fr[ 4])
#define PT_FR5 offsetof(struct pt_regs, fr[ 5])
#define PT_FR6 offsetof(struct pt_regs, fr[ 6])
#define PT_FR7 offsetof(struct pt_regs, fr[ 7])
#define PT_FR8 offsetof(struct pt_regs, fr[ 8])
#define PT_FR9 offsetof(struct pt_regs, fr[ 9])
#define PT_FR10 offsetof(struct pt_regs, fr[10])
#define PT_FR11 offsetof(struct pt_regs, fr[11])
#define PT_FR12 offsetof(struct pt_regs, fr[12])
#define PT_FR13 offsetof(struct pt_regs, fr[13])
#define PT_FR14 offsetof(struct pt_regs, fr[14])
#define PT_FR15 offsetof(struct pt_regs, fr[15])
#define PT_FR16 offsetof(struct pt_regs, fr[16])
#define PT_FR17 offsetof(struct pt_regs, fr[17])
#define PT_FR18 offsetof(struct pt_regs, fr[18])
#define PT_FR19 offsetof(struct pt_regs, fr[19])
#define PT_FR20 offsetof(struct pt_regs, fr[20])
#define PT_FR21 offsetof(struct pt_regs, fr[21])
#define PT_FR22 offsetof(struct pt_regs, fr[22])
#define PT_FR23 offsetof(struct pt_regs, fr[23])
#define PT_FR24 offsetof(struct pt_regs, fr[24])
#define PT_FR25 offsetof(struct pt_regs, fr[25])
#define PT_FR26 offsetof(struct pt_regs, fr[26])
#define PT_FR27 offsetof(struct pt_regs, fr[27])
#define PT_FR28 offsetof(struct pt_regs, fr[28])
#define PT_FR29 offsetof(struct pt_regs, fr[29])
#define PT_FR30 offsetof(struct pt_regs, fr[30])
#define PT_FR31 offsetof(struct pt_regs, fr[31])
#define PT_SR0 offsetof(struct pt_regs, sr[ 0])
#define PT_SR1 offsetof(struct pt_regs, sr[ 1])
#define PT_SR2 offsetof(struct pt_regs, sr[ 2])
#define PT_SR3 offsetof(struct pt_regs, sr[ 3])
#define PT_SR4 offsetof(struct pt_regs, sr[ 4])
#define PT_SR5 offsetof(struct pt_regs, sr[ 5])
#define PT_SR6 offsetof(struct pt_regs, sr[ 6])
#define PT_SR7 offsetof(struct pt_regs, sr[ 7])
#define PT_IASQ0 offsetof(struct pt_regs, iasq[0])
#define PT_IASQ1 offsetof(struct pt_regs, iasq[1])
#define PT_IAOQ0 offsetof(struct pt_regs, iaoq[0])
#define PT_IAOQ1 offsetof(struct pt_regs, iaoq[1])
#define PT_CR27 offsetof(struct pt_regs, cr27)
#define PT_ORIG_R28 offsetof(struct pt_regs, orig_r28)
#define PT_KSP offsetof(struct pt_regs, ksp)
#define PT_KPC offsetof(struct pt_regs, kpc)
#define PT_SAR offsetof(struct pt_regs, sar)
#define PT_IIR offsetof(struct pt_regs, iir)
#define PT_ISR offsetof(struct pt_regs, isr)
#define PT_IOR offsetof(struct pt_regs, ior)

#endif /* GDB_HPPA_LINUX_OFFSETS_H */
